// components/item-card/item-card.ts
Component({

  /**
   * 组件的属性列表
   */
  properties: {
    // 卡片数据
    itemData: {
      type: Object,
      value: {}
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    // 滑动起始位置
    startX: 0,
    // 当前滑动距离
    moveDistance: 0,
    // 删除按钮宽度
    deleteWidth: 80
  },

  /**
   * 组件的方法列表
   */
  methods: {
    // 触摸开始事件
    touchStart(e: WechatMiniprogram.TouchEvent) {
      this.setData({
        startX: e.touches[0].clientX,
        moveDistance: 0
      })
    },

    // 触摸移动事件
    touchMove(e: WechatMiniprogram.TouchEvent) {
      const moveX = e.touches[0].clientX
      const distance = moveX - this.data.startX
      
      // 只允许向左滑动
      if (distance < 0) {
        this.setData({
          moveDistance: Math.max(distance, -this.data.deleteWidth)
        })
      }
    },

    // 触摸结束事件
    touchEnd() {
      const { moveDistance, deleteWidth } = this.data
      // 滑动超过删除按钮宽度的一半时，自动展开
      if (Math.abs(moveDistance) > deleteWidth / 2) {
        this.setData({
          moveDistance: -deleteWidth
        })
      } else {
        this.setData({
          moveDistance: 0
        })
      }
    },

    // 删除事件
    handleDelete() {
      this.triggerEvent('delete', this.properties.itemData)
    }
  }
})